import { useAsyncGet } from "@/composables/api";

interface ResponseUser {
  // 头像地址
  avatarUrl: string;
  // 背景图地址
  backgroundUrl: string;
  // 封禁理由
  banReason: string;
  // 能否提问
  canBeAsked: boolean;
  // 能否删除
  canDelete: boolean;
  // 能否编辑
  canEdit: boolean;
  // 能否编辑用户名
  canEditUsername: boolean;
  // 能否钱包支付
  canWalletPay: boolean;
  // 待定
  denyStatus: boolean;
  // 过期时间
  expiredAt: string;
  // 待定
  expiredDays: boolean;
  // 关注
  follow: string;
  // 关注数
  followCount: number;
  // 用户组
  group: {
    // 用户组
    groupName: string;
    // 用户组id
    groupId: number;
    // 到期时间
    expirationTime: string;
    // 是否为顶级付费用户组
    isTop: boolean;
    // 用户组颜色
    color: string;
    // 用户组等级
    level: number;
    // 剩余时间数字
    remainTime: number;
    // 剩余时间类型；0：天、1：时、2：分
    typeTime: number;
  };
  // 是否设置密码
  hasPassword: boolean;
  // 用户id
  id: number;
  // 身份证号
  identity: string;
  // 是否绑定微信
  isBindWechat: boolean;
  // 是否实名
  isReal: boolean;
  // 待定
  isRenew: boolean;
  // 被点赞数
  likedCount: number;
  // 登录时间
  loginAt: string;
  // 手机号
  mobile: string;
  // 昵称
  nickname: string;
  // 原始头像地址
  originalAvatarUrl: string;
  // 原始背景图地址
  originalBackGroundUrl: string;
  // 原始手机号码
  originalMobile: string;
  // 待定
  paid: boolean;
  // 待定
  payTime: string;
  // 提问数
  questionCount: number;
  // 身份证姓名
  realname: string;
  // 注册原因
  registerReason: string;
  // 是否展示组
  showGroups: boolean;
  // 签名
  signature: string;
  // 个人状态
  status: number;
  // 帖子数
  threadCount: number;
  // 更新时间
  updatedAt: string;
  // 用户名
  username: string;
  // 待定
  usernameBout: number;
  // 钱包余额
  walletBalance: number;
  // 冻结金额
  walletFreeze: number;
  // 微信头像地址
  wxHeadImgUrl: string;
  // 微信昵称
  wxNickname: string;
}

export const useUser = (id?: number) => {
  return useAsyncGet<ResponseUser>(
    "/user",
    "user-data-" + (id || "current"),
    id
      ? {
          userId: id
        }
      : {}
  );
};
